home *** CD-ROM | disk | FTP | other *** search
- 6900 OPTION BASE 1: CLS
- 6910 DEFINT I,J,M: RRR=0
- 6920 PRINT:PRINT
- 6930 INPUT"Enter a date (mm/dd/yy or mm/dd/yyyy)";D$
- 6940 GOSUB 7000: PRINT: PRINT JDATE
- 6950 GOTO 6920
- 7000 REM SUBROUTINE JDATE
- 7010 ' converts DATE (mm/dd/yy) to Julian date
- 7020 ' main requires Option Base 1
- 7030 ' uses: variables MONLEN,MM,DD,YY,JDATE,II
- 7040 ' input of D$ (uses a DATA statement)
- 7050 '
- 7060 IF RRR=1 THEN 7100 ELSE DIM MONLEN(12): RRR=1
- 7070 FOR II=1 TO 12: READ MONLEN(II): NEXT
- 7080 DATA 31,28,31,30,31,30,31,31,30,31,30,31
- 7090 '
- 7100 II=LEN(D$): JDATE=0: MONLEN(2)=28
- 7110 IF II=8 OR II=10 THEN 7130 ELSE 7120
- 7120 PRINT: PRINT"... Improper date format (mm/dd/yy or yyyy)":STOP
- 7130 MM=VAL(LEFT$(D$,2)): IF MM>12 OR MM<1 THEN PRINT:PRINT"Invalid month -";MM: STOP
- 7140 DD=VAL(MID$(D$,4,2)): IF DD>31 OR DD<1 THEN PRINT:PRINT"Invalid day -";DD: STOP
- 7150 IF II=8 THEN YY=VAL(RIGHT$(D$,2)) ELSE YY=VAL(RIGHT$(D$,4))
- 7160 IF MM>1 THEN 7170 ELSE 7180
- 7170 IF YY/4=INT(YY/4) THEN MONLEN(2)=29
- 7180 DD=VAL(MID$(D$,4,2)): IF DD>MONLEN(MM) OR DD<1 THEN PRINT:PRINT"Invalid day -";DD: STOP
- 7185 IF MM-1=0 THEN 7210
- 7190 FOR II=1 TO (MM-1)
- 7200 JDATE=JDATE+MONLEN(II): NEXT II
- 7210 JDATE=JDATE+DD
- 7220 RETURN
- 7185 IF MM-1=0 THEN 7210
- 7190 FOR